package com.petecat.interchan.base.warning.empl.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.http.ResponseEntity;

import com.petecat.interchan.base.warning.empl.entity.BsWarningEmpl;
import com.petecat.interchan.base.warning.rule.entity.BsWarningRule;
import com.petecat.interchan.core.service.BaseService;
import com.petecat.interchan.protocol.base.config.dto.DelEmplDTO;
import com.petecat.interchan.protocol.base.empl.dto.BsWarningEmplQryDTO;
import com.petecat.interchan.protocol.base.empl.vo.BsWarningEmplTreeVO;
import com.petecat.interchan.protocol.data.PageVO;

public interface IWarningEmplService extends BaseService<BsWarningEmpl, String>{
	
	/**
	 * TREE查询预警人员
	 * @param bsWarning
	 * @return
	 */
	PageVO<BsWarningEmplTreeVO> queryWarningEmplTree(BsWarningEmplQryDTO bsWarning);
	
	/**
	 * 通过规则ID获取预警人员
	 * @param id
	 * @return
	 */
	List<BsWarningEmpl> queryEmplListByRuleId(String id);

	/**
	 * 通过RuleId和UserId删除多个预警人员 
	 * @param delEmplDTO
	 */
	void delEmplsByUserIdAndRuleId(List<DelEmplDTO> delEmplDTO);
	
	/**
	 * 删除所有预警人员
	 * @param id
	 */
	void delEmplsByRuleId(String id);
	
	/**
	 * 删除规则对应的表中残余多余预警人员
	 * @param delRules
	 */
	void delEmplsByRuleIds(String[] delRules);
	
	/**
	 * 导出每个项目启动规则的预警人员信息到Excel
	 * @Title: outOpenRuleEmplInfo   
	 * @Description: TODO(这里用一句话描述这个方法的作用)   
	 * @param: @return      
	 * @return: ResponseEntity<byte[]>      
	 * @throws
	 */
	ResponseEntity<byte[]> outOpenRuleEmplInfo(String userId);

}
